/*
 * Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef SLE_IPC_INTERFACE_CODE_H
#define SLE_IPC_INTERFACE_CODE_H

namespace OHOS {
namespace NearLink {
namespace SleStandard {
enum SleHostInterfaceCode {
    SLE_REGISTER_HOST_CALLBACK = 0,
    SLE_UNREGISTER_HOST_CALLBACK,
    SLE_ENABLE,
    SLE_DISABLE,
    SLE_GET_SLE_STATE,
    SLE_GET_HOST_ADDRESS,
    SLE_SET_HOST_NAME,
    SLE_GET_HOST_NAME,
    SLE_START_FLOW_MONITOR,
    SLE_STOP_FLOW_MONITOR,
    SLE_GET_DEFAULT_CONN_CONFIG,
    SLE_GET_SLE_SERVER_REMOTE,
};

enum SleHostCallbackInterfaceCode {
    SLE_CALLBACK_STATE_CHANGE = 0,
    SLE_CALLBACK_FLOW_MONITOR_EVENT,
};

enum SleSeekInterfaceCode {
    SLE_REGISTER_SEEK_CALLBACK = 0,
    SLE_UNREGISTER_SEEK_CALLBACK,
    SLE_SEEK_ENABLE,
    SLE_SEEK_DISABLE,
    SLE_GET_DEFAULT_SEEK_CONFIG,
};

enum SleSeekCallbackInterfaceCode {
    SLE_CALLBACK_SEEK_STATE_CHANGE = 0,
    SLE_CALLBACK_SEEK_RESULT,
};

enum SleAnnounceInterfaceCode {
    SLE_REGISTER_ANNOUNCE_CALLBACK = 0,
    SLE_UNREGISTER_ANNOUNCE_CALLBACK,
    SLE_REMOVE_ANNOUNCE_ID,
    SLE_CREATE_ANNOUNCE_ID,
    SLE_ANNOUNCE_ENABLE,
    SLE_ANNOUNCE_DISABLE,
    SLE_GET_DEFAULT_ANNOUNCE_CONFIG,
};

enum SleAnnounceCallbackInterfaceCode {
    SLE_CALLBACK_ANNOUNCE_STATE_CHANGE = 0,
};

enum SleConnectInterfaceCode {
    SLE_REGISTER_CONNECT_CALLBACK = 0,
    SLE_UNREGISTER_CONNECT_CALLBACK,
    SLE_CONNECT,
    SLE_DISCONNECT,
    SLE_GET_CONNECT_ID,
    SLE_GET_CONNECT_STATE,
    SLE_GET_CONNECT_DEVICE_LIST,
    SLE_UPDATE_CONNECT_PARAM,
    SLE_UPDATE_ALL_CONNECT_PARAM,
    SLE_GET_RECOM_SEND_DATA_SIZE,
    SLE_SEND_PAIR_REQUEST,
    SLE_REMOVE_PAIRED_DEVICE,
    SLE_REMOVE_ALL_PAIRED_DEVICES,
    SLE_GET_PAIRED_DEVICES_NUMBER,
    SLE_GET_PAIRED_DEVICES,
    SLE_GET_PAIR_STATE,
    SLE_READ_REMOTE_RSSI,
};

enum SleConnectCallbackInterfaceCode {
    SLE_CALLBACK_CONNECT_STATE = 0,
    SLE_CALLBACK_CONNECT_PARAM_UPDATE_COMPLETE,
    SLE_CALLBACK_AUTH_COMPLETE,
    SLE_CALLBACK_PAIR_COMPLETE,
    SLE_CALLBACK_READ_RSSI,
};

enum SleSsapClientInterfaceCode {
    SLE_SSAP_CLIENT_REGISTER_CLIENT = 0,
    SLE_SSAP_CLIENT_UNREGISTER_CLIENT,
    SLE_SSAP_CLIENT_FIND_STRUCTURE,
    SLE_SSAP_CLIENT_READ_REQUEST_BY_UUID,
    SLE_SSAP_CLIENT_READ_REQUEST,
    SLE_SSAP_CLIENT_WRITE_REQUEST,
    SLE_SSAP_CLIENT_WRITE_COMMAND,
    SLE_SSAP_CLIENT_EXCHANGE_REQUEST,
};

enum SleSsapClientCallbackInterfaceCode
{
    SLE_SSAP_CLIENT_CALLBACK_FIND_SERVICE = 0,
    SLE_SSAP_CLIENT_CALLBACK_FIND_PROPERTY,
    SLE_SSAP_CLIENT_CALLBACK_FIND_COMPLETE,
    SLE_SSAP_CLIENT_CALLBACK_WRITE_REASULT,
    SLE_SSAP_CLIENT_CALLBACK_READ_RESULT,
    SLE_SSAP_CLIENT_CALLBACK_READ_BY_UUID_COMPLETE,
    SLE_SSAP_CLIENT_CALLBACK_EXCHANGE_INFO,
    SLE_SSAP_CLIENT_CALLBACK_NOTIFICATION,
    SLE_SSAP_CLIENT_CALLBACK_INDICATION,
};

enum SleSsapServerInterfaceCode {
    SLE_SSAP_SERVER_REGISTER_SERVER = 0,
    SLE_SSAP_SERVER_UNREGISTER_SERVER,
    SLE_SSAP_SERVER_ADD_SERVICE,
    SLE_SSAP_SERVER_ADD_PROPERTY,
    SLE_SSAP_SERVER_ADD_DESCRIPTOR,
    SLE_SSAP_SERVER_REMOVE_ALL_SERVICES,
    SLE_SSAP_SERVER_START_SERVICE,
    SLE_SSAP_SERVER_SEND_RESPONSE,
    SLE_SSAP_SERVER_NOTIFY_INDICATE,
    SLE_SSAP_SERVER_NOTIFY_INDICATE_BY_UUID,
    SLE_SSAP_SERVER_SET_MTU_INFO,
};

enum SleSsapServerCallbackInterfaceCode {
    SLE_SSPA_SERVER_CALLBACK_START_SERVICE = 0,
    SLE_SSPA_SERVER_CALLBACK_DELETE_ALL_SERVICES,
    SLE_SSPA_SERVER_CALLBACK_READ_REQUEST,
    SLE_SSPA_SERVER_CALLBACK_WRITE_REQUEST,
    SLE_SSPA_SERVER_CALLBACK_MTU_INFO_CHANGED,
};
} // SleStandard
} // NearLink
} // OHOS

#endif // SLE_SERVICE_IPC_INTERFACE_CODE_H